/*  1:   */ package org.jetbrains.debugger;
/*  2:   */ 
/*  3:   */

import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import org.jetbrains.debugger.values.Value;

/*  4:   */
/*  5:   */
/*  6:   */ 
/*  7:   */ public class VariableImpl
/*  8:   */   implements Variable
/*  9:   */ {
/* 10:   */   protected volatile Value value;
/* 11:   */   private final String a;
/* 12:   */   private final ValueModifier b;
/* 13:   */   
/* 14:   */   public VariableImpl(@NotNull String paramString, @Nullable Value paramValue, @Nullable ValueModifier paramValueModifier)
/* 15:   */   {
/* 16:14 */     this.a = paramString;
/* 17:15 */     this.value = paramValue;
/* 18:16 */     this.b = paramValueModifier;
/* 19:18 */     if ((paramValue == null) && (!(this instanceof ObjectProperty))) {
/* 20:19 */       throw new IllegalArgumentException("value could be null only if variable is ObjectProperty");
/* 21:   */     }
/* 22:   */   }
/* 23:   */   
/* 24:   */   public VariableImpl(@NotNull String paramString, @NotNull Value paramValue)
/* 25:   */   {
/* 26:24 */     this(paramString, paramValue, null);
/* 27:   */   }
/* 28:   */   
/* 29:   */   @Nullable
/* 30:   */   public final ValueModifier getValueModifier()
/* 31:   */   {
/* 32:30 */     return this.b;
/* 33:   */   }
/* 34:   */   
/* 35:   */   @NotNull
/* 36:   */   public final String getName()
/* 37:   */   {
/* 38:36 */     String tmp4_1 = this.a;
/* 39:36 */     if (tmp4_1 == null) {
/* 40:36 */       throw new IllegalStateException(String.format("@NotNull method %s.%s must not return null", new Object[] { "org/jetbrains/debugger/VariableImpl", "getName" }));
/* 41:   */     }
/* 42:36 */     return tmp4_1;
/* 43:   */   }
/* 44:   */   
/* 45:   */   @Nullable
/* 46:   */   public final Value getValue()
/* 47:   */   {
/* 48:42 */     return this.value;
/* 49:   */   }
/* 50:   */   
/* 51:   */   public void setValue(Value paramValue)
/* 52:   */   {
/* 53:47 */     this.value = paramValue;
/* 54:   */   }
/* 55:   */   
/* 56:   */   public boolean isMutable()
/* 57:   */   {
/* 58:52 */     return this.b != null;
/* 59:   */   }
/* 60:   */   
/* 61:   */   public boolean isReadable()
/* 62:   */   {
/* 63:57 */     return true;
/* 64:   */   }
/* 65:   */   
/* 66:   */   public String toString()
/* 67:   */   {
/* 68:62 */     return "[Variable: name=" + getName() + ", value=" + getValue() + ']';
/* 69:   */   }
/* 70:   */ }



/* Location:           E:\idea\

 * Qualified Name:     org.jetbrains.debugger.VariableImpl

 * JD-Core Version:    0.7.0.1

 */